stack-allocate GtkCssLookup instances
authorTimm Bäder <mail@baedert.org>
Tue, 2 Jan 2018 07:36:10 +0000 (08:36 +0100)
committerTimm Bäder <mail@baedert.org>
Tue, 2 Jan 2018 07:36:10 +0000 (08:36 +0100)
gtk/gtkcsslookup.c
gtk/gtkcsslookupprivate.h
gtk/gtkcssstaticstyle.c

index 3a4c02d003dbfe09bef8a9de807018794a55851e..cc1df1d2f95104e0d595a62a3d9b078d5ab4bce8 100644 (file)
 #include "gtkprivatetypebuiltins.h"
 #include "gtkprivate.h"
 
-GtkCssLookup *
-_gtk_css_lookup_new (const GtkBitmask *relevant)
+void
+_gtk_css_lookup_init (GtkCssLookup     *lookup,
+                      const GtkBitmask *relevant)
 {
-  GtkCssLookup *lookup;
-
-  lookup = g_malloc0 (sizeof (GtkCssLookup));
+  memset (lookup, 0, sizeof (*lookup));
 
   if (relevant)
     {
@@ -40,17 +39,12 @@ _gtk_css_lookup_new (const GtkBitmask *relevant)
       lookup->missing = _gtk_bitmask_new ();
       lookup->missing = _gtk_bitmask_invert_range (lookup->missing, 0, GTK_CSS_PROPERTY_N_PROPERTIES);
     }
-
-  return lookup;
 }
 
 void
-_gtk_css_lookup_free (GtkCssLookup *lookup)
+_gtk_css_lookup_destroy (GtkCssLookup *lookup)
 {
-  gtk_internal_return_if_fail (lookup != NULL);
-
   _gtk_bitmask_free (lookup->missing);
-  g_free (lookup);
 }
 
 gboolean
index 8aaa913c32adc325ba5fedd555bd41b9fc6b984d..ca4094d9402dfed2066aea7ebab7e6b8234929ed 100644 (file)
@@ -38,8 +38,9 @@ struct _GtkCssLookup {
   GtkCssLookupValue  values[GTK_CSS_PROPERTY_N_PROPERTIES];
 };
 
-GtkCssLookup *          _gtk_css_lookup_new                     (const GtkBitmask           *relevant);
-void                    _gtk_css_lookup_free                    (GtkCssLookup               *lookup);
+void                    _gtk_css_lookup_init                    (GtkCssLookup               *lookup,
+                                                                 const GtkBitmask           *relevant);
+void                    _gtk_css_lookup_destroy                 (GtkCssLookup               *lookup);
 
 static inline const GtkBitmask *_gtk_css_lookup_get_missing     (const GtkCssLookup         *lookup);
 gboolean                _gtk_css_lookup_is_missing              (const GtkCssLookup         *lookup,
index 1152399d2991bfdaa3caf31e2612751f753a7d41..a87b4097614dd276610aa5232fd58a7ef567455d 100644 (file)
@@ -172,27 +172,27 @@ gtk_css_static_style_new_compute (GtkStyleProvider    *provider,
                                   GtkCssStyle         *parent)
 {
   GtkCssStaticStyle *result;
-  GtkCssLookup *lookup;
+  GtkCssLookup lookup;
   GtkCssChange change = GTK_CSS_CHANGE_ANY_SELF | GTK_CSS_CHANGE_ANY_SIBLING | GTK_CSS_CHANGE_ANY_PARENT;
 
-  lookup = _gtk_css_lookup_new (NULL);
+  _gtk_css_lookup_init (&lookup, NULL);
 
   if (matcher)
     gtk_style_provider_lookup (provider,
                                matcher,
-                               lookup,
+                               &lookup,
                                &change);
 
   result = g_object_new (GTK_TYPE_CSS_STATIC_STYLE, NULL);
 
   result->change = change;
 
-  _gtk_css_lookup_resolve (lookup,
+  _gtk_css_lookup_resolve (&lookup,
                            provider,
                            result,
                            parent);
 
-  _gtk_css_lookup_free (lookup);
+  _gtk_css_lookup_destroy (&lookup);
 
   return GTK_CSS_STYLE (result);
 }